package Test;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * java中值传递和引用传递
 */
public class Test {
    public static void main(String[] args) {
        ParamTest pt = new ParamTest();
        User hollis = new User();
        hollis.setName("Hollis");
        hollis.setGender("Male");
        pt.pass(hollis);
        System.out.println("print in main , user is " + hollis.getName());
    }
}

class User {
    String name;
    String gender;

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

class ParamTest {
    public void pass(User user) {
        user = new User();
        user.setName("hollischuang");
        user.setGender("Male");
        System.out.println("print in pass , user is " + user.getName());
    }
}

//小明的最大值(已经AC)
/*
 小明有一台机器，每次输入一个数就会返回一个非负整数。经过小明的多次试验，知道了如果给这台机器一个数x，机器会返回这个数除以P的余数y，而P刻在这台机器的下方，小明可以查看到。
       例如当P=5时，输入x=9机器会返回4，输入15时会返回0。
       小明现在可以输入[L,R]这个闭区间内所有的整数，问小明能从这台机器中得到的最大的返回值是多少。
 */
class Main {
    public static void main(String[] args) {
        int N = 70005;
        Scanner scanner = new Scanner(System.in);
        int count = scanner.nextInt();
        int[] l = new int[N];
        int[] r = new int[N];
        int[] p = new int[N];
        for (int i = 1; i <= count; i++) {
            l[i] = scanner.nextInt();
        }
        for (int i = 1; i <= count; i++) {
            r[i] = scanner.nextInt();
        }
        for (int i = 1; i <= count; i++) {
            p[i] = scanner.nextInt();
        }
        for (int i = 1; i <= count; i++) {
            if (r[i] - l[i] + 1 >= p[i]) {
                System.out.print(p[i] - 1 + " ");
            } else if (l[i] % p[i] > r[i] % p[i]) {
                System.out.print(p[i] - 1 + " ");
            } else {
                System.out.print(r[i] % p[i] + " ");
            }
        }
    }
}

// 分鸡蛋
/*
白云大妈手上有x个鸡蛋，她想把这些鸡蛋分给其他人。每次操作可以选择：

1. 从鸡舍里拿出一颗鸡蛋；

2. 如果鸡蛋数量能被三等分，则三等分后她会分出去其中两份，自己手上保留一份。

重复以上过程，直到手上有y个鸡蛋为止。她想知道最少需要多少次操作？
 */
class Main2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count = scanner.nextInt();
        List<Long> res = new ArrayList<>();

        while (count-- > 0) {
            long x, y;
            x = scanner.nextLong();
            y = scanner.nextLong();
            long ans = 0;
            if(x < y){
                ans += 3*y - x;
                x = 3*y;
            }else if(x > y){
                while (x != y) {
                    if (x % 3 != 0) {
                        long t = 3 - x % 3;
                        x += t;
                        ans += t;
                    }
                    if (x / 3 >= y) {
                        x /= 3;
                        ans++;
                    } else {
                        ans += 3 * y - x;
                        x = 3 * y;
                    }
                }
            }
            res.add(ans);
        }
        for (Long re : res) {
            System.out.println(re);
        }
    }
}
